<!Doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Bootstrap Dark Theme from BootSwatch-->
    <link href="../assert/bootswatch/bootstrap.min.css" rel="stylesheet">
    <!-- 引入 highlight.js 的 CSS -->
    <link href="../assert/highlight/atom-one-dark.css" rel="stylesheet">
    <link href="../assert/logo_style.css" rel="stylesheet">
    <link href="../assert/override_style.css" rel="stylesheet">
    <title>Sonder Blog - Post</title>
</head>
<script src="../assert/highlight/highlight.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<body class="d-flex flex-column vh-100">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <button class="btn btn-dark text-white-50 font-weight-bold" onclick="window.location.href='../index.php'">首页</button>
</nav>
<div class="container mt-4">
    <div class="row">
        <div class="col-md-10">
            <div class="card bg-dark text-white mb-4">
                <div class="card-body">
<p>什么是文件上传漏洞?
如果对文件上传路径变量过滤不严，并且对用户上传的文件后缀以及文件类型限制不严，攻击者可通过 Web
访问的目录上传任意文件，包括网站后门文件<code>webshell</code>，进而远程控制网站服务器。</p>
<p>所以一般需注意：</p>
<p>在开发网站及应用程序过程中，需严格限制和校验上传的文件，禁止上传恶意代码的文件 限制相关目录的执行权限，防范 webshell 攻击
危害就是上传网站后门文件，获取<code>webshell</code></p>
<p>注意：<code>ctf</code>中的文件上传题目大多数都为黑盒测试，做题流程通常都为一个个方法测试进行推测，</p>
<p>文件上传思路</p>
<p>客户端：<code>js</code>检查</p>
<p>服务端：</p>
<ol>
<li>检查后缀
<ol>
<li>黑名单
<ol>
<li>上传特殊可解析后缀</li>
<li>上传<code>.htaccess</code></li>
<li>后缀大小写绕过</li>
<li>点绕过</li>
<li>空格绕过</li>
<li><code>::$DATA</code>绕过</li>
<li>配合解析漏洞
<ol>
<li><code>Apache</code> 陌生后缀解析漏洞</li>
<li><code>Apache</code> 换行解析漏洞</li>
</ol></li>
<li>双后缀名绕过</li>
</ol></li>
<li>白名单
<ol>
<li><code>MIME</code> 绕过</li>
<li><code>%00</code> 截断</li>
<li><code>0x00</code> 截断</li>
</ol></li>
</ol></li>
<li>检查内容
<ol>
<li>文件头检查</li>
<li>突破<code>getimagesize()</code></li>
<li>突破<code>exif_imagetype()</code></li>
<li>二次渲染</li>
</ol></li>
<li>代码逻辑
<ol>
<li>条件竞争</li>
</ol></li>
</ol>
                    <div class="card-footer text-right">
                        <button class="btn btn-dark " onclick="window.location.href='../index.php'">首页</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<footer class="py-4 bg-dark mt-5 mt-auto">
    <div class="container">
        <p class="m-0 text-center text-light">Copyright &copy; Sonder Blog 2024</p>
    </div>
</footer>
</body>
</html>